#pragma once

namespace LSH
{

class Texture;
typedef std::map<String, Texture*> textureMap;
typedef std::map<String, Texture*>::iterator textureItr;
typedef std::map<String, Texture*>::const_iterator textureItrC;

class TextureManager : public Singleton<TextureManager>
{
public:
    TextureManager(void);
    ~TextureManager(void);

    Texture* loadTextureFormFile(String& fileName);
    void freeTexture(Texture* pTexture);

protected:
    void _destory();
protected:
    textureMap _textures;
};

} // LSH
